home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / ctutor.exe / SOURCE / SCOPE.C < prev    next >
C/C++ Source or Header  |  1994-05-15  |  2KB  |  67 lines

  1.                                 /* Chapter 5 - Program 4 - SCOPE.C */
  2. #include "stdio.h"      /* Prototypes for Input/Output             */
  3. void head1(void);       /* Prototype for head1                     */
  4. void head2(void);       /* Prototype for head2                     */
  5. void head3(void);       /* Prototype for head3                     */
  6.  
  7. int count;              /* This is a global variable               */
  8.  
  9. void main()
  10. {
  11. register int index; /* This variable is available only in main */
  12.  
  13.    head1();
  14.    head2();
  15.    head3();
  16.                       /* main "for" loop of this program */
  17.    for (index = 8 ; index > 0 ; index--) {
  18.       int stuff;      /* This var is only available in these braces*/
  19.       for (stuff = 0 ; stuff <= 6 ; stuff++)
  20.          printf("%d ", stuff);
  21.       printf(" index is now %d\n", index);
  22.     }
  23. }
  24.  
  25. int counter;      /* This is available from this point on */
  26. void head1(void)
  27. {
  28. int index;        /* This variable is available only in head1 */
  29.  
  30.    index = 23;
  31.    printf("The header1 value is %d\n", index);
  32. }
  33.  
  34. void head2(void)
  35. {
  36. int count;  /* This variable is available only in head2 */
  37.             /* and it displaces the global of the same name */
  38.  
  39.    count = 53;
  40.    printf("The header2 value is %d\n", count);
  41.    counter = 77;
  42. }
  43.  
  44. void head3(void)
  45. {
  46.    printf("The header3 value is %d\n", counter);
  47. }
  48.  
  49.  
  50.  
  51.  
  52. /* Result of execution
  53.  
  54. The header1 value is 23
  55. The header2 value is 53
  56. The header3 value is 77
  57. 0 1 2 3 4 5 6  index is now 8
  58. 0 1 2 3 4 5 6  index is now 7
  59. 0 1 2 3 4 5 6  index is now 6
  60. 0 1 2 3 4 5 6  index is now 5
  61. 0 1 2 3 4 5 6  index is now 4
  62. 0 1 2 3 4 5 6  index is now 3
  63. 0 1 2 3 4 5 6  index is now 2
  64. 0 1 2 3 4 5 6  index is now 1
  65.  
  66. */
  67.